#include <REGX52.H>

sbit LED=P2^0;

void Delay(unsigned char t)
{
	while (t--);	
}

//缺点：会占用主循环 比较占用CPU
//一般通过定时器或硬件PWN来实现
void main()
{
	unsigned char Time,i;
	while(1)
	{
		for(Time=0;Time<100;Time++)//由灭转亮
		{
			for(i=0;i<20;i++)//当前Time状态循环20次
			{
				LED = 0;//低电平 亮
				Delay(Time);//低电平持续时间
				LED = 1;//高电平 灭
				Delay(100-Time);//高电平持续时间					
			}		
		}
		for(Time=100;Time>0;Time--)//由灭转亮
		{
			for(i=0;i<20;i++)
			{
				LED = 0;
				Delay(Time);
				LED = 1;
				Delay(100-Time);					
			}		
		}
	}
}